import { defineRouter } from '#q-app/wrappers';
import {
  createRouter,
  createMemoryHistory,
  createWebHistory,
  createWebHashHistory,
} from 'vue-router';
import routes from './routes';
// import { useAuthStore } from 'src/stores/auth';
/*
 * If not building with SSR mode, you can
 * directly export the Router instantiation;
 *
 * The function below can be async too; either use
 * async/await or return a Promise which resolves
 * with the Router instance.
 */
// const white = ['Login'];
const Router = defineRouter(function (/* { store, ssrContext } */) {
  const createHistory = process.env.SERVER
    ? createMemoryHistory
    : process.env.VUE_ROUTER_MODE === 'history'
      ? createWebHistory
      : createWebHashHistory;
  const Router = createRouter({
    scrollBehavior: () => ({ left: 0, top: 0 }),
    routes,

    // Leave this as is and make changes in quasar.conf.js instead!
    // quasar.conf.js -> build -> vueRouterMode
    // quasar.conf.js -> build -> publicPath
    history: createHistory(process.env.VUE_ROUTER_BASE),
  });
  // Router.beforeEach(async (to, from, next) => {
  //   const authStore = useAuthStore();
  //   console.log('Router.beforeEach', to);
  //   if (white.includes(to.name)) {
  //     console.log('white');
  //     return next();
  //   } else {
  //     if (!authStore.user) {
  //       console.log('no user');
  //       try {
  //         await authStore.init(Router);
  //       } catch (error) {
  //         console.log('error', error);
  //         next({ name: 'Login' });
  //       }
  //       next(to.fullPath);
  //     } else {
  //       console.log('ok');
  //       next();
  //     }
  //   }
  // });
  return Router;
});
export default Router;
